package com.shrcl.engineerprocess.domain;

import com.shrcl.engineerprocess.domain.EngineerCostEstimation;
import com.shrcl.engineerprocess.domain.EngineerNotitableTaskExtension;
import com.shrcl.engineerprocess.domain.EngineerProject;
import com.shrcl.engineerprocess.domain.impl.CreateEngineerProjectTaskImpl;
import com.shrcl.engineerprocess.domain.proxy.CreateEngineerProjectTaskProxy;
import edu.fudan.mylang.pf.EntityImplementation;

@EntityImplementation(implementBy = CreateEngineerProjectTaskImpl.class)
public interface CreateEngineerProjectTask extends EngineerNotitableTaskExtension {
  public abstract EngineerCostEstimation getEngineerCostEstimation();
  
  public abstract CreateEngineerProjectTask setEngineerCostEstimation(final EngineerCostEstimation engineerCostEstimation);
  
  public abstract String getTaskType();
  
  public abstract String getTaskName();
  
  public abstract String getTaskDescription();
  
  public abstract void performCommit(final EngineerProject engineerProject);
  
  public abstract void performReject();
  
  public abstract CreateEngineerProjectTaskProxy toProxy();
}
